#pragma once
#include <string>
#include <bitset>

namespace rvfft {

/* *************** define *************** */
#define OPCODE_butt 0b0001011
#define OPCODE_shuf 0b0001011
#define OPCODE_test 0b0001011
#define OPCODE_comp 0b0101011
#define OPCODE_ldst 0b0100011

#define OPCODE_LEN 32
#define SUBSTR_LEN 4

#define RET_OPCODE static inline std::string
/* *************** define *************** */


/* *************** class alter *************** */
template<uint8_t opcode_len>
using Opcode = std::bitset<opcode_len>;
/* *************** class alter *************** */

/* *************** templates *************** */
template <class...> constexpr std::false_type always_false{};
/* *************** templates *************** */
}